
import { handler } from "./handler.js";

// 全局管理一个 target 和 Proxy 的映射关系
const tag_pro = new WeakMap()

// 创建代理
export function reactive(target){
  // 判断target的类型
  // 并且不能重复给一个对象创建 Proxy ==> 建立一个 map(使用 weakmap 弱应用)

  if(typeof target !== 'object'){
    return target
  }
  // 如果已经 有 proxy
  if(tag_pro.has(target)){
    return tag_pro.get(target)
  }
  // 创建 proxy

  const proxy = new Proxy(target,handler)

  return proxy
}


